<metadata>
  <!--
    To be done:
      OuyaController
        AvailableButtons, AvailableAxes: Remove setter from property
  -->
  <!-- Rename namespaces to remove initial "tv" -->
  <attr path="/api/package[@name='tv.ouya.console.api']" name="managedName">Ouya.Console.Api</attr>
  <attr path="/api/package[@name='tv.ouya.console.util']" name="managedName">Ouya.Console.Util</attr>
  <!-- Add/remove nodes required for compiling -->
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='CancelIgnoringOuyaResponseListener']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='CancelIgnoringJsonResponseListener']" />
  <!-- Remove internal namespaces from the public API -->
  <remove-node path="/api/package[@name='tv.ouya.console.iap.api']" />
  <remove-node path="/api/package[@name='tv.ouya.console.internal']" />
  <remove-node path="/api/package[@name='tv.ouya.console.internal.util']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api.store']" />
  <!-- Remove classes and methods that are not supposed to be exposed -->
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade.RequestGamerUuidRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade.RequestProductListRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade.RequestPurchaseRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade.RequestReceiptsRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade.SetTestModeRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='RequestRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='StoreManager.RequestAppDownloadUrlRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='StoreManager.RequestAppInfoRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='StoreManager.RequestAppsListForTagRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='StoreManager.RequestAppsListRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='StoreManager.RequestCreateNewUserRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='StoreManager.RequestDeregisterConsoleRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='StoreManager.RequestDeveloperAppsListRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='StoreManager.RequestRegisterConsoleRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='StoreManager.RequestResendEmailRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='StoreManager.RequestStoreStructureRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='StoreManager.RequestTagListRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='StoreManager.RequestUpdateUserInfoRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='StoreManager.RequestUserInfoRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='StoreManager']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='UserManager.AddAccountCallback']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='UserManager.RequestUserAddsAccountRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='UserManager.RequestUsernameRunnable']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='UserManager']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='Product']/method[@name='readFromJSONObject']" />
  <!-- Remove deprecated methods -->
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaController']/method[@name='interpret']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade']/method[@name='bindRequestHasBeenMade']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade']/method[@name='setInstance']" />
  <!--
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='UserManager']/method[@name='bindRequestHasBeenMade']" />
  <remove-node path="/api/package[@name='tv.ouya.console.api']/class[@name='UserManager']/method[@name='setInstance']" />
  -->
  <!-- Rename method parameters -->
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaController']/method[@name='getControllerByDeviceId']/parameter[@name='p0']" name="name">deviceId</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaController']/method[@name='getControllerByPlayer']/parameter[@name='p0']" name="name">playerIndex</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaController']/method[@name='getPlayerNumByDeviceId']/parameter[@name='p0']" name="name">deviceId</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaController']/method[@name='onKeyDown']/parameter[@name='p0']" name="name">keyCode</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaController']/method[@name='onKeyDown']/parameter[@name='p1']" name="name">event</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaController']/method[@name='onKeyUp']/parameter[@name='p0']" name="name">keyCode</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaController']/method[@name='onKeyUp']/parameter[@name='p1']" name="name">event</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaController']/method[@name='onGenericMotionEvent']/parameter[@name='p0']" name="name">event</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaController']/method[@name='getAxisValue']/parameter[@name='p0']" name="name">axis</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaController']/method[@name='getButton']/parameter[@name='p0']" name="name">button</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaEncryptionHelper']/method[@name='decryptProductResponse']/parameter[@name='p0']" name="name">productResponse</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaEncryptionHelper']/method[@name='decryptProductResponse']/parameter[@name='p1']" name="name">applicationKey</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaEncryptionHelper']/method[@name='decryptReceiptResponse']/parameter[@name='p0']" name="name">receiptResponse</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaEncryptionHelper']/method[@name='decryptReceiptResponse']/parameter[@name='p1']" name="name">applicationKey</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaEncryptionHelper']/method[@name='parseJSONReceiptResponse']/parameter[@name='p0']" name="name">receiptResponse</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade']/method[@name='init']/parameter[@name='p0']" name="name">context</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade']/method[@name='init']/parameter[@name='p1']" name="name">developerUuid</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade']/method[@name='onServiceConnected']/parameter[@name='p0']" name="name">componentName</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade']/method[@name='onServiceConnected']/parameter[@name='p1']" name="name">binder</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade']/method[@name='onServiceDisconnected']/parameter[@name='p0']" name="name">componentName</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade']/method[@name='requestGamerUuid']/parameter[@name='p0']" name="name">listener</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade']/method[@name='requestProductList']/parameter[@name='p0']" name="name">purchasables</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade']/method[@name='requestProductList']/parameter[@name='p1']" name="name">listener</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade']/method[@name='requestPurchase']/parameter[@name='p0']" name="name">purchasable</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade']/method[@name='requestPurchase']/parameter[@name='p1']" name="name">listener</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='OuyaFacade']/method[@name='requestReceipts']/parameter[@name='p0']" name="name">listener</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/interface[@name='OuyaResponseListener']/method[@name='onFailure']/parameter[@name='p0']" name="name">errorCode</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/interface[@name='OuyaResponseListener']/method[@name='onFailure']/parameter[@name='p1']" name="name">errorMessage</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/interface[@name='OuyaResponseListener']/method[@name='onFailure']/parameter[@name='p2']" name="name">optionalData</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/interface[@name='OuyaResponseListener']/method[@name='onSuccess']/parameter[@name='p0']" name="name">result</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='Purchasable']/constructor/parameter[@name='p0']" name="name">identifier</attr>
  <!--
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='UserManager']/constructor/parameter[@name='p0']" name="name">context</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='UserManager']/method[@name='getInstance']/parameter[@name='p0']" name="name">context</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='UserManager']/method[@name='onServiceConnected']/parameter[@name='p0']" name="name">componentName</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='UserManager']/method[@name='onServiceConnected']/parameter[@name='p1']" name="name">binder</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='UserManager']/method[@name='onServiceDisconnected']/parameter[@name='p0']" name="name">componentName</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='UserManager']/method[@name='requestUserAddsAccount']/parameter[@name='p0']" name="name">activity</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='UserManager']/method[@name='requestUserAddsAccount']/parameter[@name='p1']" name="name">listener</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='UserManager']/method[@name='requestUsername']/parameter[@name='p0']" name="name">consoleId</attr>
  <attr path="/api/package[@name='tv.ouya.console.api']/class[@name='UserManager']/method[@name='requestUsername']/parameter[@name='p1']" name="name">listener</attr>
  -->
</metadata>
